//#include "JTree.h"
//#include "JFile.h"
//#include "JSerialize.h"
//
//JTree::JTree(void)
//{
//	treeIndex = 0;
//}
//
//
//JTree::~JTree(void)
//{
//}
//
//void JTree::ReadDirectoryToTree( const char* rootPath )
//{
//	try
//	{
//		path p(rootPath);
//		if(exists(p))
//		{
//			if(is_directory(p))
//			{
//				JNode node;
//				node.selfIndex = -1;
//				ReadChildDir(p,node);
//   			}
//			else if (is_regular_file(p))
//			{
//
//			}
//		}
//	}
//	catch (const filesystem_error& ex)
//	{
//		std::cout << ex.what() << '\n';
//	}
//}
//
//void JTree::ReadChildDir( path p ,JNode& parentNode)
//{
//	JNodePtr pNode(new JNode);
//	pNode->selfIndex = treeIndex;
//	this->tree.push_back(pNode);
//	parentNode.childrenIndex.push_back(pNode->selfIndex);
//	++treeIndex;
//	pNode->parentIndex = parentNode.selfIndex;
//	pNode->data.reset(new JFile(p.filename().generic_string(),"",""));
//	if(is_directory(p))
//	{
//		directory_iterator ite = directory_iterator(p);
//		for(;ite != directory_iterator(); ++ite)
//		{
//			ReadChildDir(*ite,*pNode);
//		}
//	}
//	else if(is_regular_file(p))
//	{
//		//deal file as regular file...
//	}
//}
//
///*
//data structure:
//int : classSize
//int : vector<JNode> tree 's count
//vector<JNode>: tree
//*/
//int JTree::Serialize(std::iostream& strea)
//{
//	int selfSize = 0;
//	int classSize = 0;
//	int treeSize = 0;
//	selfSize += JSerialize::PutInt(strea,classSize);
//	classSize += JSerialize::PutInt(strea,treeSize);
//	for(int i = 0;i < tree.size(); ++i)
//	{
//		treeSize += tree[i]->Serialize(strea);
//	}
//	classSize += treeSize;
//	selfSize += classSize;
//	JSerialize::Verify(strea,treeSize,classSize * -1);
//	JSerialize::Verify(strea,classSize,selfSize * -1);
//	return selfSize;
//}
//
//void JTree::ReSerialize(std::iostream& strea)
//{
//	int classSize = JSerialize::GetInt(strea);
//	int treeSize = JSerialize::GetInt(strea);
//	while(treeSize > 0)
//	{
//		JNode* pNode = new JNode;
//		int selfSize = pNode->ReSerialize(strea);
//		treeSize -= selfSize;
//		JNodePtr ppNode(pNode);
//		this->tree.push_back(ppNode);
//	}
//}
//
//
//
